home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / packet / ms_exe / reflect.asc < prev    next >
Encoding:
Text File  |  1990-05-23  |  5.4 KB  |  191 lines

  1.  
  2. 'REFLECT.BAS
  3. 'this program calculates the optimum angle of take-off and arrival
  4. 'for meteor-burst communications between two sites. The height of
  5. 'the reflecting meteor trails is calculated from the empirical
  6. 'formula given in CCIR Report 251-3 for the frequency of operation.
  7. 'Reflections are assumed to occur at mid-path, which results in
  8. 'the angle of take-off equalling the angle of arrival.
  9. 'The angle of incidence and reflection (φ) at the reflecting plane
  10. 'is also calculated.
  11.  
  12. GOSUB TITLE
  13.  
  14. MENU:
  15. CLS
  16.      PRINT "╔═══════════════════════════════════════════════════════════════╗"
  17.      PRINT "║         MBC LINK CHARACTERISTICS (STATIC)   - MODULE 8        ║"
  18.      PRINT "╚═══════════════════════════════════════════════════════════════╝"
  19.  
  20.  
  21.  
  22. PRINT
  23. PRINT "CHOOSE:"
  24. PRINT
  25. PRINT "    1. ENGLISH MEASURE - STATUTE MILES"
  26. PRINT "    2. METRIC MEASURE - KILOMETERS"
  27. PRINT
  28. INPUT "                   ENTER CHOICE 1 OR 2: "; U%
  29.  
  30. IF U% = 1 GOTO ENTERENGLISH
  31.  
  32. CLS
  33.      PRINT "╔═══════════════════════════════════════════════════════════════╗"
  34.      PRINT "║         MBC LINK CHARACTERISTICS (STATIC)   - MODULE 8        ║"
  35.      PRINT "╚═══════════════════════════════════════════════════════════════╝"
  36.  
  37. PRINT
  38. INPUT "ENTER DISTANCE BETWEEN SITE A AND SITE B (KILOMETERS): "; D#
  39. GOTO CALCA
  40.  
  41.  
  42. ENTERENGLISH:
  43. CLS
  44.      PRINT "╔═══════════════════════════════════════════════════════════════╗"
  45.      PRINT "║         MBC LINK CHARACTERISTICS (STATIC)   - MODULE 8        ║"
  46.      PRINT "╚═══════════════════════════════════════════════════════════════╝"
  47. PRINT
  48. INPUT "ENTER DISTANCE BETWEEN SITE A AND SITE B (MILES): "; D#
  49.     
  50.     D# = 1.609344 * D#        'convert miles to kilometers
  51.  
  52. GOTO CALCA
  53.  
  54.  
  55. CALCA:
  56.  
  57.     'main calculation routine
  58.  
  59. PRINT
  60. INPUT "ENTER FREQUENCY OF OPERATION (MHZ): "; F
  61. PRINT
  62.  
  63.  
  64.  
  65.  
  66. R = 6370                               'nominal earth radius in km.
  67. PI = 4 * ATN(1)
  68. H = -17 * (LOG(F) / LOG(10)) + 124     'nominal height of reflection in km.
  69. ANGLEA# = .5 * D# / R
  70. BPLUSC = PI - ANGLEA#
  71. B = R + H
  72. C = R
  73. BMINUSC = 2 * ATN(((B - C) / (B + C)) * TAN(.5 * (PI - ANGLEA#)))
  74. ANGLEB# = .5 * (BPLUSC + BMINUSC)
  75. TOA# = ANGLEB# - PI / 2
  76. TOA# = TOA# * (180 / PI)
  77. ANGLEC# = PI - ANGLEA# - ANGLEB#
  78. A = SQR(B ^ 2 + C ^ 2 - 2 * B * C * COS(ANGLEA#))
  79. DP = 2 * A          'total slant, up/down path length
  80. LL = 32.45 + 20 * LOG(F) / LOG(10) + 20 * LOG(DP) / LOG(10)  'l.o.s. path loss dB
  81. GOSUB MBLOSS
  82.  
  83. RESULT:
  84.  
  85. PRINT "OPTIMUM ANGLE OF TAKE-OFF AND ARRIVAL FOR MID-PATH"
  86. PRINT USING "REFLECTION POINT AT ### km ALTITUDE = "; H;
  87.  
  88. IF ABS(TOA#) < 0 THEN GOTO TOOFAR
  89.  
  90. PRINT USING "  ##.# DEGREES"; TOA#
  91. PRINT
  92.       IF TOA# < 0 THEN GOSUB TOOFAR
  93. PRINT USING "REFLECTION ANGLE φ = ##.# DEGREES"; ANGLEC# * (180 / PI)
  94. PRINT
  95. PRINT USING "PATH LENGTH GROUND TO REFLECTING POINT = #### km"; A
  96. PRINT
  97. PRINT USING "FREE SPACE UP DOWN PATH LOSS = ###.# dB"; LL
  98. PRINT
  99. PRINT USING "REFLECTION LOSS AT METEOR TRAIL (MIN/AVG/MAX) = ###.# / ###.# / ###.# dB"; REFLOSS(0); REFLOSS(1); REFLOSS(2)
  100. PRINT USING "OVERALL MBC PATH LOSS (MIN/AVG/MAX) = ###.# / ###.# / ###.# dB"; MBLOSSDB(0); MBLOSSDB(1); MBLOSSDB(2)
  101.  
  102.  
  103. PRINT
  104. PRINT "CHOOSE:"
  105. PRINT "            1. CONTINUE WITH NEW CALCULATION"
  106. PRINT "            2. QUIT"
  107. PRINT "                              ENTER CHOICE 1 OR 2: ";
  108. INPUT ANS%
  109. IF ANS% = 1 THEN GOTO MENU ELSE GOTO ENDING
  110.  
  111.  
  112.  
  113. MBLOSS:   'calculate MBC path loss, static case, no time variation
  114.       'using formula from Sugar and CCIR Report 251-3
  115.   FOR INDEX = 0 TO 2 STEP 1
  116.     BETA = 45 * INDEX         'assign value to beta  (0°<ß<90°)
  117.     BETA = BETA * (PI / 180)  'change from degrees to radians
  118.     LAMBDA = 300 / F
  119.     SECPHI = 1 / COS(ANGLEC#)
  120.     SINPHI = SIN(ANGLEC#)
  121.     COSBETA = COS(BETA)
  122.  
  123.     L = SQR((LAMBDA * A * A) / ((A + A) * (1 - (SINPHI ^ 2) * (COSBETA ^ 2))))
  124.  
  125.     RE# = 2.8E-15  'effective electron radius - meters
  126.     Q# = 1E+14     'electron line density - electrons/meter
  127.  
  128.     SIGMA = 4 * PI * (RE# ^ 2) * (Q# ^ 2) * (L ^ 2)
  129.  
  130.     LGR0# = .035 * H - 3.45
  131.     R0 = 10 ^ LGR0#
  132.  
  133.     A1 = EXP((8 * PI ^ 2 * R0 ^ 2) / (LAMBDA ^ 2 * SECPHI ^ 2))
  134.  
  135.     MBLOSS(INDEX) = (LAMBDA ^ 2 * SIGMA * A1) / (64 * PI ^ 3 * A ^ 4)
  136.     MBLOSSDB(INDEX) = -20 * LOG(MBLOSS(INDEX)) / LOG(10)
  137.     REFLOSS(INDEX) = MBLOSSDB(INDEX) - LL
  138.   NEXT INDEX
  139.  
  140. RETURN
  141.  
  142. TOOFAR:
  143.  
  144.    PRINT "** NEGATIVE ELEVATION ANGLE INDICATES DISTANCE BEYOND RANGE **"
  145.    PRINT
  146.  
  147. RETURN
  148.  
  149.  
  150. ENDING:
  151. CLS
  152. PRINT
  153. LOCATE 10, 25
  154. PRINT "≡≡≡ PROGRAM COMPLETED ≡≡≡"
  155. END
  156.  
  157.  
  158. '╔═══════════════════════════════════════════════════════════╗
  159. '║             Program Author                                ║
  160. '║             ≡≡≡≡≡≡≡≡≡≡≡≡≡≡                                ║
  161. '║                                                           ║
  162. '║             Jacob Z. Schanker, P.E.                       ║
  163. '║                                                           ║
  164. '║             Last revised: May 1990                        ║
  165. '║                                                           ║
  166. '╚═══════════════════════════════════════════════════════════╝
  167.  
  168. TITLE:
  169. 'opening screen for meteor burst programs
  170. CLS
  171.  
  172. LOCATE 5, 25
  173. PRINT "Supplemental Computer Programs"
  174. LOCATE 6, 38
  175. PRINT "to"
  176. LOCATE 7, 27
  177. PRINT "METEOR BURST COMMUNICATION"
  178. LOCATE 9, 38
  179. PRINT "by"
  180. LOCATE 10, 31
  181. PRINT "Jacob Z. Schanker"
  182. LOCATE 14, 24
  183. PRINT "COPYRIGHT 1990 ARTECH HOUSE, INC."
  184. LOCATE 22, 25
  185. PRINT "<< Press any key to continue >>"
  186. WHILE INKEY$ = ""
  187. WEND
  188. CLS
  189. RETURN
  190.  
  191.